package old.day20190318.statements;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * @author DingZhenYun
 * @create 2019-03-18 13:02
 */
/*
	 * ResultSet: 结果集. 封装了使用 JDBC 进行查询的结果.
	 * 1. 调用 Statement 对象的 executeQuery(sql) 可以得到结果集.
	 * 2. ResultSet 返回的实际上就是一张数据表. 有一个指针指向数据表的第一样的前面.
	 * 可以调用 next() 方法检测下一行是否有效. 若有效该方法返回 true, 且指针下移. 相当于
	 * Iterator 对象的 hasNext() 和 next() 方法的结合体
	 * 3. 当指针对位到一行时, 可以通过调用 getXxx(index) 或 getXxx(columnName)
	 * 获取每一列的值. 例如: getInt(1), getString("name")
	 * 4. ResultSet 当然也需要进行关闭.
	 */

public class RSet {
    public static void main(String[] args) {
        Connection conn=null;
        Statement statement=null;
        ResultSet rs=null;
        try{
            conn=JDBCTools.getConnection();
            statement=conn.createStatement();
            String sql="select id,username,password,nickname from t_users";
            rs=statement.executeQuery(sql);
            while(rs.next()){
                int id=rs.getInt(1);
                String username=rs.getString("username");
                String password=rs.getString(3);
                String nickname=rs.getString(4);
                System.out.println("id  username \t\t password \t\t\t nickname");
                System.out.println(id+"\t "+username+"\t "+password+" \t"+nickname);
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            JDBCTools.release(rs,statement,conn);
        }
    }
}
